package IT.Servlet;

import IT.DataAccess.DatClienteTelefono;
import IT.DataAccess.IDatClienteTelefono;
import IT.Entities.ClienteTelefono;
import IT.Helper.Helper;
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class TelefonoServlet extends HttpServlet {
   
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=ISO-8859-1");
        //PrintWriter out = response.getWriter();
        //try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet TelefonoServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet TelefonoServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
             //out.println(request.getParameter("chkNPrincipal"));
        /*} finally { 
            out.close();
        }*/
       Helper oHelper=new Helper();
       IDatClienteTelefono oDatTelefono =new DatClienteTelefono();
       ClienteTelefono oTelefono=new ClienteTelefono();
       
       String cAccion, cMensaje;
       cMensaje="";
       boolean bPrincipal=false;
       int nCodigo,nCliente,nTipo,nEstado,nResultado;
       nCodigo=0; nCliente=0;nTipo=0; nEstado=0;
       nResultado=0;
       
       if(request.getParameter("btnAccion")!=null){
           cAccion=request.getParameter("btnAccion").trim();
           //Insertar
           if(cAccion.trim().equals("Insertar")){
             //validar
             
             if(request.getParameter("hdnCliente").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nCliente=Integer.parseInt(request.getParameter("hdnCliente").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("chkNPrincipal")!=null){
                bPrincipal=true;
             }else{
                bPrincipal=false;
             }
             
             if(request.getParameter("cboNTipo").trim().length()==0){
                   cMensaje+="<li>Tipo es obligatorio</li>";
             }else{                    
                    try{
                        nTipo=Integer.parseInt(request.getParameter("cboNTipo").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Tipo formato incorrecto</li>";
                    }
             }
               
             if(request.getParameter("txtNTelefono").trim().length()==0){
                   cMensaje+="<li>Telefono es obligatorio</li>";
             }else{
                    if(request.getParameter("txtNTelefono").trim().length()<2){
                        cMensaje+="<li>Telefono debe ser mayor o igual a 2 caracteres</li>";
                    }
             }
              
             if(request.getParameter("cboNEstado").trim().length()==0){
                    cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nEstado=Integer.parseInt(request.getParameter("cboNEstado").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }
             
             if(bPrincipal==true){
                nResultado=oDatTelefono.Valida(new ClienteTelefono(0, nCliente));                
                if(nResultado!=0){
                   cMensaje+="<li>Ya se registro Telefono como Principal</li>";
                }
             }
             
             if(cMensaje.trim().length()==0){
                oTelefono=new ClienteTelefono();
                oTelefono.setPrin_tel_bo(bPrincipal);
                oTelefono.setTip_tel_in(nTipo);
                oTelefono.setNum_tel_in(oHelper.ValidaEncode(request.getParameter("txtNTelefono").trim()));
                oTelefono.setAnx_tel_vc(oHelper.ValidaEncode(request.getParameter("txtNAnexo").trim()));                
                oTelefono.setEst_tel_in(nEstado);
                oTelefono.setCod_cli_in(nCliente);
                oDatTelefono.Insertar(oTelefono);
                
             }else{
                request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>");                  
             }
             response.sendRedirect("WebClienteTelefono.jsp?nCliente="+String.valueOf(nCliente).trim());  
           }
           
           //Editar
           if(cAccion.trim().equals("Guardar")){
             //validar
             
             if(request.getParameter("hdnCodigo").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nCodigo=Integer.parseInt(request.getParameter("hdnCodigo").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("hdnCliente").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nCliente=Integer.parseInt(request.getParameter("hdnCliente").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("chkPrincipal")!=null){
                bPrincipal=true;
             }else{
                bPrincipal=false;
             }
             
             if(request.getParameter("cboTipo").trim().length()==0){
                   cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nTipo=Integer.parseInt(request.getParameter("cboTipo").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }
               
             if(request.getParameter("txtTelefono").trim().length()==0){
                   cMensaje+="<li>Nombre es obligatorio</li>";
             }else{
                    if(request.getParameter("txtTelefono").trim().length()<2){
                        cMensaje+="<li>Nombre debe ser mayor o igual a 2 caracteres</li>";
                    }
             }
              
             if(request.getParameter("cboEstado").trim().length()==0){
                    cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nEstado=Integer.parseInt(request.getParameter("cboEstado").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }
             
             if(bPrincipal==true){
                nResultado=oDatTelefono.Valida(new ClienteTelefono(nCodigo, nCliente));                
                if(nResultado!=0){
                   cMensaje+="<li>Ya se registro Telefono como Principal</li>";
                }
             }             
             
             if(cMensaje.trim().length()==0){
                oTelefono=new ClienteTelefono();
                oTelefono.setCod_tel_in(nCodigo);
                oTelefono.setPrin_tel_bo(bPrincipal);
                oTelefono.setTip_tel_in(nTipo);
                oTelefono.setNum_tel_in(oHelper.ValidaEncode(request.getParameter("txtTelefono").trim()));
                oTelefono.setAnx_tel_vc(oHelper.ValidaEncode(request.getParameter("txtAnexo").trim()));
                oTelefono.setEst_tel_in(nEstado);
                oTelefono.setCod_cli_in(nCliente);
                oDatTelefono.Editar(oTelefono);
                response.sendRedirect("WebClienteTelefono.jsp?nCliente="+String.valueOf(nCliente).trim());     
             }else{
                request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>");
                response.sendRedirect("WebClienteTelefono.jsp?nCliente="+String.valueOf(nCliente).trim()+"&nEditar="+String.valueOf(nCodigo).trim());  
             }
             
           }
           
           if(cAccion.trim().equals("Cancelar")){
             if(request.getParameter("hdnCliente").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nCliente=Integer.parseInt(request.getParameter("hdnCliente").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
             response.sendRedirect("WebClienteTelefono.jsp?nCliente="+String.valueOf(nCliente).trim()); 
           }
           
       }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
